package middlewares

import (
	// "../libraries/redis"
	// /models
	"go-management-system/models"
	"time"

	"github.com/gin-gonic/gin"
)

//登录
func AdminMiddlewares(ctx *gin.Context) {
	// 验证登录
	Token := ctx.Request.Header.Get("Token")
	// 返回需要重新登录的
	if Token == "" {
		ctx.JSON(200, gin.H{"result": -1, "msg": "请重新登录！"})
		ctx.Abort()
		return
	}

	AdminSession := new(models.AdminSession);
	info := AdminSession.FindByToken(Token);
	if info.Id == 0 {
		ctx.JSON(200, gin.H{"result": -1, "msg": "请重新登录！"})
		ctx.Abort()
		return
	}
	expire_time := time.Now().Unix()
	if(expire_time > int64(info.ExpireTime)){
		ctx.JSON(200, gin.H{"result": -1, "msg": "登录过期请重新登录！"})
		ctx.Abort()
		return
	}

	AdminModel := new(models.Admin);
	adminInfo := AdminModel.FindById(1);
	if(adminInfo.Id == 0){
		ctx.JSON(200, gin.H{"result": -1, "msg": "请重新登录！"})
		ctx.Abort()
		return
	}
	// 验证是否为超级管理员
	// if(adminInfo.Root != 0){
	// 	DevAuth := new(models.DevAuth);
	// 	DevAuthInfo := DevAuth.GetByRoleIdRows(1);
	// 	is_status := 0
	// 	// 验证权限
	// 	for _, v := range DevAuthInfo {
	// 		if( v.Type==1 && v.Uri == ctx.Request.URL.RequestURI()){
	// 			is_status = 1
	// 			continue
	// 		}
	// 		if  v.Type!=1 && v.Uri == ctx.Request.URL.RequestURI() {
	// 				is_status = 1
	// 				continue
	// 		}
	// 	}
		
	// 	if(is_status == 0){
	// 		ctx.JSON(200, gin.H{"result": -1, "msg": "请重新登录！"})
	// 		ctx.Abort()
	// 		return
	// 	}
	// }
	ctx.Next();
	//验证菜单权限，查询查菜单	

	// 
	// 查询我的权限


	// UserInfo := redis.Get(Token)
	// if UserInfo == "" {
	// 	ctx.JSON(200, gin.H{"result": 90001, "msg": "非法请求！"})
	// 	ctx.Abort()
	// 	return

	// }
	// //更新状态
	// redis.Set(Token, UserInfo, 1500)
	ctx.Next()
}
